package com.colodoo.framework.creater.service;

import com.colodoo.framework.creater.model.Column;
import com.colodoo.framework.utils.StringUtil;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 代码生成器
 *
 * @author coldoo
 */
@Component
public class CodeGeneratorService {

    @Resource
    CreaterMapper createrMapper;

    /**
     * 生成代码
     *
     * @param table
     * @param tableSchema
     */
    public void generator(String table, String tableSchema) {

        // 查找表字段
        List<Column> columns = this.getColumns(table, tableSchema);

        // 处理表字段
        columns = parseColumns(columns);

        // 查询模板
        // todo

        // 生成字符串
        // todo

        // 根据不同方式生成代码
        // todo

    }

    /**
     * 查找表字段
     *
     * @param table
     * @param tableSchema
     * @return
     */
    private List<Column> getColumns(String table, String tableSchema) {
        return createrMapper.getColumns("user", "lanb_wvs");
    }

    /**
     * 处理表字段
     *
     * @param columns
     * @return
     */
    private List<Column> parseColumns(List<Column> columns) {
        for (Column column : columns) {
            column.set_columnName(StringUtil.underlineToCamel(column.getColumnName()));
        }
        return columns;
    }

}
